import GoodsTools from '@/GoodsTools'

export default {
	// 3. 配置store中的数据|存|取
	state: {
		// 模拟服务端获取，从缓存取出购物车数量
		num: GoodsTools.getTotalCount()
	},
	// 取数据
	getters: {
		getNum(state) {
			return state.num;
		}
	},
	// 操作数据
	mutations: {
		changeNum(state,payload) {
			// ======丢失快照记录======
			// setTimeout(function () {
			// 	state.num += payload.num;
			// 	// 模拟数据与后台交互的延时情况
			// },1000);
			
			state.num = payload.num; // 调用者传递增加的数量
		},
		// 购物详情页添加商品
		addNum(state,addload) {
			state.num += addload.num;
		}

	},
	// 行为，在行为中，可以存在异步操作，但最终还是通知mutations
	actions: {
		addNumByServerRate(store,payload) {
			// 异步操作行为也没关系，可以记录快照
			// 后台比例是 1
			let rate = 1;
			store.commit('changeNum',{ num: payload.num * rate });
		},
		addNumByGoodsDetail(store,addload) {
			store.commit('addNum',{ num: addload.num });
		}
	}
}